package br.com.cast.scc.pages.veiculo;

import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.link.Link;
import org.apache.wicket.markup.repeater.Item;
import org.apache.wicket.markup.repeater.data.DataView;

import br.com.cast.scc.filtros.FiltroPesquisaVeiculos;
import br.com.cast.scc.model.Veiculo;

public class VeiculoGridPanel extends WebMarkupContainer {

	private static final long serialVersionUID = 1L;
	
	public VeiculoGridPanel(String id, 
			FiltroPesquisaVeiculos filtro) {
		
		super(id);
		
		setOutputMarkupId(true);
		
		criaGrade(filtro);
	}

	private void criaGrade(FiltroPesquisaVeiculos filtro) {
		DataView<Veiculo> grade = new DataView<Veiculo>(
				"veiculos", filtro) {

			private static final long serialVersionUID = 1L;

			@Override
			protected void populateItem(Item<Veiculo> item) {
				
				item.add(new Label("tpVeiculo.descricao"));
				item.add(new Label("nuEmbarcacao"));
				item.add(new Label("status"));
				
				criaBotaoEditar(item);
			}
		};
		
		add(grade);
	}

	private void criaBotaoEditar(final Item<Veiculo> item) {
		item.add(new Link<Void>("editar") {

			private static final long serialVersionUID = 1L;

			@Override
			public void onClick() {
				Veiculo veiculo = item.getModelObject();
				
				CadastrarVeiculoPage page = 
						new CadastrarVeiculoPage();
				
				page.atualizaModelo(veiculo);
				setResponsePage(page);
			}
			
		});
	}

}
